package br.com.edumobi.activities;

import android.content.Intent;
import android.os.Bundle;

import java.util.List;

import br.com.edumobi.R;
import br.com.edumobi.dados.modelos.Classificacao;
import br.com.edumobi.dados.modelos.Questao;
import br.com.edumobi.fragments.ClassificacoesFragment;

public class ClassificacoesActivity extends GenericaActivity implements ClassificacoesFragment.AcoesClassificacoesFragment {

    public static final String EXTRA_CLASSIFICACAO = "EXTRA_CLASSIFICACAO";

    private Intent intentClassificacoesInferiores;
    private Intent intentQuestoes;

    private static final int REQUEST_CODE_CLASSIFICACOES_INFERIORES = 1;
    private static final int REQUEST_CODE_QUESTOES = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_classificacoes);

        getActionBar().setTitle(((Classificacao) getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO)).nome);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case REQUEST_CODE_CLASSIFICACOES_INFERIORES:
                intentClassificacoesInferiores = null;
                break;
            case REQUEST_CODE_QUESTOES:
                intentQuestoes = null;
                break;
            default:
                break;
        }
    }

    @Override
    public List<Classificacao> obterClassificacoesPorClassificacaoSuperior(Classificacao classificacaoSuperior) {
        return local.consultarClassificacoesPorClassificacaoSuperior(classificacaoSuperior);
    }

    @Override
    public List<Questao> obterQuestoesPorClassificacao(Classificacao classificacao) {
        return local.consultarQuestoesPorClassificacao(classificacao);
    }

    @Override
    public Classificacao obterClassificacaoSuperior() {
        return (Classificacao) getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO);
    }

    @Override
    public void abrirClassificacoesInferiores(Classificacao classificacaoSuperior) {
        if (intentClassificacoesInferiores == null) {
            intentClassificacoesInferiores = new Intent(this, ClassificacoesActivity.class);
            intentClassificacoesInferiores.putExtra(EXTRA_CLASSIFICACAO, classificacaoSuperior);
            startActivityForResult(intentClassificacoesInferiores, REQUEST_CODE_CLASSIFICACOES_INFERIORES);
        }
    }

    @Override
    public void abrirQuestoes(Classificacao classificacao) {
        if (intentQuestoes == null) {
            intentQuestoes = new Intent(this, LauncherQuestoesActivity.class);
            intentQuestoes.putExtra(LauncherQuestoesActivity.EXTRA_CLASSIFICACAO, classificacao);
            startActivityForResult(intentQuestoes, REQUEST_CODE_QUESTOES);
        }
    }
}
